雖然我們之前為了做到 maintenance mode 已經成功使用 ingress 的修改達成了,但更改 ingress 的部分我們需要進到環境裡面調整 values,非常不優雅。既然我們用的是 AWS 全環境架構,是否有機會將 AWS service 做到呢?
於是我們開始考量在 ALB 前面的幾個可能性
在考慮服務的時候,我們可以考量
接下來我們就根據以上三點來思考
在特定時刻,只讓特定IP可以使用服務,其他都回傳 500 custom response: maintenance mode
AWS WAF (Web Application Firewall) 是一款用於保護Web應用程式免受常見的網路攻擊的防火牆服務。它可以幫助監控和控制HTTP和HTTPS流量,進而保護應用程式不受各種惡意行為的影響,例如SQL injection、跨站腳本攻擊等。通過自定義安全規則,可以根據需要對特定來源或行為進行許可、阻止或監控。
可行性
操作及維護性
可以使用 CLI 對 WAF 進行操作或是 terraform 部署或切換。切換方法為使用 aws update-web-acl
aws waf update-web-acl --web-acl-id <web_acl_id> --change-token <change_token> \
--updates 'Action=INSERT,ActivatedRule={Priority=1,RuleId=<rule_id>,Action={Type=ALLOW}}'
費用